/* 函数重载：
 * 一、C++为什么支持函数重载，C语言为什么不支持函数重载？
 * 因为C++代码产生函数符号的时候，是由函数名+参数列表类型组成的
 * 而C代码产生函数符号时，由函数名来决定
 *
 * 二、函数重载要注意什么？
 * 1、函数名相同，参数列表的个数或类型不同
 * 2、一组函数要称得上重载，一定是先处在同一个作用域中
 * 3、加const或volatile的时候，是如何影响形参类型的
 * 4、一组函数，函数名相同，参数列表也相同，仅仅是返回值不同，这不叫重载。
 *
 * 三、C++和C语言代码之间如何相互调用
 * C++ 调用 C代码：无法直接调用了 怎么办？ 把C函数的声明扩在 external "C"里面
 * C 调用 C++代码：把C++代码扩在 external "C"里面
 *
 * 请解释一下什么是多态？
 * 静态的多态：编译时多态  函数重载
 * 动态的多态：运行时多态
 * */
 
#include <iostream>
#include <string.h>
using namespace std;

bool compare(int a,int b){
    cout<<"compare_int_int"<<endl;
    return a>b;
}

bool compare(double a,double b){
    cout<<"compare_double_double"<<endl;
    return a>b;
}

bool compare(const char* a,const char* b){
    cout<<"compare_char*_char*"<<endl;
    return strcmp(a,b)>0;
}
int main(){

    compare(1,2);
    compare(1.1,1.2);
    compare("aa","bb");

    return 0;
}
